// import 'dart:convert';
// import 'package:baselib/variable_base/base/base_view_model.dart';
// import 'package:baselib/variable_base/utils/res_util.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
// import 'package:get/get.dart';
// import 'package:webview_flutter/webview_flutter.dart';
//
// // #docregion platform_imports
// // Import for Android features.
// import 'package:webview_flutter_android/webview_flutter_android.dart';
//
// // Import for iOS features.
// import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';
// import 'package:module_function/module_comm/service/module_comm_service.dart';
//
// /**
//  * webview逻辑处理类
//  */
// class CommUrlViewModel extends BaseViewModel<ModuleCommService> {
//   ModuleCommService moduleCommService;
//   String title;
//   String url;
//   bool isAssets;
//   bool isNet;
//   bool isFile;
//   Map<String, dynamic> arguments;
//   WebViewController webViewController;
//
//   @override
//   void onInit() {
//     arguments = Get.arguments ?? {};
//     title = arguments['title'];
//     url = arguments['url'];
//     isAssets = arguments['isAssets'];
//     isNet = arguments['isNet'];
//     isFile = arguments['isFile'];
//     initWebViewController();
//     super.onInit();
//   }
//
//   @override
//   ModuleCommService createService() =>
//       (moduleCommService = ModuleCommService());
//
//   //加载本地文件
//   loadPrivacyHtmlFromAssets() {
//     if(isAssets??false){
//       webViewController.loadFlutterAsset(url);
//     }
//     if(isNet??false){
//       webViewController.loadRequest(Uri.parse(url));
//     }
//     if(isFile??false){
//       webViewController.loadFile(url);
//     }
//     // String fileHtmlContents = await rootBundle.loadString(DrawableUtils.digtalhy_privacy);
//     // webViewController.loadUrl(Uri.dataFromString(fileHtmlContents,
//     //     mimeType: 'text/html', encoding: Encoding.getByName('utf-8'))
//     //     .toString());
//   }
//
//   void initWebViewController() {
//     PlatformWebViewControllerCreationParams params;
//     if (WebViewPlatform.instance is WebKitWebViewPlatform) {
//       params = WebKitWebViewControllerCreationParams(
//         allowsInlineMediaPlayback: true,
//         mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{},
//       );
//     } else {
//       params = const PlatformWebViewControllerCreationParams();
//     }
//
//     final WebViewController controller =
//     WebViewController.fromPlatformCreationParams(params);
//     // #enddocregion platform_features
//
//     controller
//       ..setJavaScriptMode(JavaScriptMode.unrestricted)
//       ..setBackgroundColor(const Color(0x00000000))
//       ..setNavigationDelegate(
//         NavigationDelegate(
//           onProgress: (int progress) {
//             debugPrint('WebView is loading (progress : $progress%)');
//           },
//           onPageStarted: (String url) {
//             debugPrint('Page started loading: $url');
//           },
//           onPageFinished: (String url) {
//             debugPrint('Page finished loading: $url');
//           },
//           onWebResourceError: (WebResourceError error) {
//             debugPrint('''
// Page resource error:
//   code: ${error.errorCode}
//   description: ${error.description}
//   errorType: ${error.errorType}
//   isForMainFrame: ${error.isForMainFrame}
//           ''');
//           },
//           onNavigationRequest: (NavigationRequest request) {
//             if (request.url.startsWith('https://www.youtube.com/')) {
//               debugPrint('blocking navigation to ${request.url}');
//               return NavigationDecision.prevent;
//             }
//             debugPrint('allowing navigation to ${request.url}');
//             return NavigationDecision.navigate;
//           },
//         ),
//       )
//       ..addJavaScriptChannel(
//         'Toaster',
//         onMessageReceived: (JavaScriptMessage message) {
//           ScaffoldMessenger.of(Get.context).showSnackBar(
//             SnackBar(content: Text(message.message)),
//           );
//         },
//       );
//
//     // #docregion platform_features
//     if (controller.platform is AndroidWebViewController) {
//       AndroidWebViewController.enableDebugging(true);
//       (controller.platform as AndroidWebViewController)
//           .setMediaPlaybackRequiresUserGesture(false);
//     }
//     // #enddocregion platform_features
//     webViewController = controller;
//     loadPrivacyHtmlFromAssets();
//   }
// }
